package com.selen.dto;

import cn.hutool.json.JSONUtil;
import lombok.Data;

/**
 * @author Selen
 */
@Data
public class RequestLogDTO {
    /**请求地址*/
    private String url;
    /**请求时间*/
    private String requestTime;
    /**请求方式*/
    private String requestMethod;
    /**来源地址*/
    private String remoteAddress;
    /**类全名称*/
    private String className;
    /**方法名称*/
    private String methodName;
    /**方法形参*/
    private String parameters;
    /**响应数据*/
    private Object responseData;
    /**请求耗时*/
    private String spendTime;

    @Override
    public String toString() {
        return String.format("\n" +
                        "请求地址: %s %s\n" +
                        "控制方法: %s.%s(): 耗时%s\n" +
                        "请求参数: %s\n" +
                        "响应数据: %s\n",
                requestMethod, url, className, methodName, spendTime,
                JSONUtil.toJsonPrettyStr(parameters),
                JSONUtil.toJsonPrettyStr(responseData));

    }
}
